package cn.edu.sjtu.se.dslab.rhapsody.entity;

import java.io.Serializable;


public abstract class Agent implements Serializable{
	
	public static final String AGENT_CONTROL = "control";
	public static final String AGENT_BUS = "bus";
	public static final String AGENT_DISPLAY = "display";
	
	private static final long serialVersionUID = 7649509331122918499L;

	private static long ID_COUNT = 1;
	
	private long id;
	
	//代理的类型
	protected String type;
	//代理的名称
	protected String name;
	
	public Agent(){
		id = ID_COUNT++;
	}

	public long getId() {
		return id;
	}

	public String getType() {
		return type;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public abstract String getAgentInitMethod();
	public abstract String getAgentInitMethodDeclaration();
	public abstract String getAgentDelegateMethod();
	public abstract String getAgentDelegateMethodDeclaration();

}
